home *** CD-ROM | disk | FTP | other *** search
/ Meeting Pearls 2 / Meeting Pearls Vol. II (1995)(GTI - Schatztruhe)[!].iso / Pearls / dev / TurboM2 / m2 / Raw.mod < prev    next >
Text File  |  1994-12-27  |  2KB  |  52 lines

  1. IMPLEMENTATION MODULE Raw ;
  2.  
  3. FROM SYSTEM IMPORT ADR ;
  4. IMPORT Exec, Dos ;
  5.  
  6. VAR
  7.   conFH : Dos.FileHandlePtr ;
  8.  
  9. PROCEDURE SetConsoleMode( mode : LONGINT ) ;
  10. VAR
  11.   replyPort : Exec.MsgPortPtr ;
  12.   packet    : Dos.StandardPacketPtr ;
  13. BEGIN
  14.   replyPort := Exec.CreatePort( NIL, 0 ) ;
  15.   IF replyPort = NIL THEN done := FALSE ; RETURN END ;
  16.   packet := Exec.AllocMem( SIZE( Dos.StandardPacket ),
  17.                  Exec.MEMF_PUBLIC+Exec.MEMF_CLEAR ) ;
  18.   IF packet = NIL THEN
  19.     Exec.DeletePort( replyPort ) ;
  20.     done := FALSE ;
  21.   ELSE
  22.     packet^.sp_Msg.mn_Node.ln_Name := ADR( packet^.sp_Pkt ) ;
  23.     packet^.sp_Pkt.dp_Link := ADR( packet^.sp_Msg ) ;
  24.     packet^.sp_Pkt.dp_Port := replyPort ;
  25.     packet^.sp_Pkt.dp_Type := Dos.ACTION_SCREEN_MODE ;
  26.     packet^.sp_Pkt.dp_Arg1 := mode ;
  27.     Exec.PutMsg( conFH^.fh_Type, ADR( packet^.sp_Msg ) ) ;
  28.     Exec.WaitPort( replyPort ) ;
  29.     Exec.GetMsg( replyPort ) ;
  30.     done := packet^.sp_Pkt.dp_Res1 # 0 ;
  31.     Exec.FreeMem( packet, SIZE( Dos.StandardPacket ) ) ;
  32.     Exec.DeletePort( replyPort )
  33.   END
  34. END SetConsoleMode ;
  35.  
  36. PROCEDURE SetConsoleRaw( ) ;
  37. BEGIN IF conFH = NIL THEN done := FALSE ELSE SetConsoleMode( -1 ) END
  38. END SetConsoleRaw ;
  39.  
  40. PROCEDURE SetConsoleCooked( ) ;
  41. BEGIN IF conFH = NIL THEN done := FALSE ELSE SetConsoleMode( 0 ) END
  42. END SetConsoleCooked ;
  43.  
  44. BEGIN
  45.   conFH := Dos.Open( "*", Dos.MODE_OLDFILE ) ;
  46.   IF conFH # NIL THEN
  47.     IF Dos.IsInteractive( conFH ) = 0 THEN conFH := NIL END
  48.   END
  49. CLOSE
  50.   IF conFH # NIL THEN SetConsoleMode( 0 ) ; Dos.Close( conFH ) END
  51. END Raw.
  52.